/* 
    nodeJS环境下以 .js ， .json ， .node 文件和对应的语法做为模块定义的承载文件
        .js 文件模块，通过JS语法方式进行定义，==并通过 module.exports 或者 exports 进行模块功能导出==

        .json 文件模块，通过json对象定义语法定义数据，当模块加载时，会自动导出定义的json数据
            json语法有严格的语法要求，属性名和字符串都必须使用双引号引起来
            json语法是不可以定义注释的
        .node 文件模块，为nodeJS核心语法编译后的二进制文件模块，不能自行定义 
        
*/

//模块加载时不会报错，因为node在读取文件时候回自动使用js语法解析模块
const module1=require("./module/module1.js");
console.log(module1);

//模块加载时不会报错，因为node在读取文件时候回自动使用json语法解析模块
const module2=require("./module/module2.json");
console.log(module2)


// 模块加载时会报错，因为node在读取文件时候回自动使用node语法解析模块(.node是一个二进制文件)
// const module3=require("./module/module3.node");
// console.log(module3);



//模块加载时不会报错，因为node在读取文件时候回自动使用js语法解析模块
const module4=require("./module/module4");
console.log(module4);


// 模块加载时会报错,因为node在读取文件时候，对没有后缀的文件，node默认使用js语法进行解析
const module5=require("./module/module5");
console.log(module5);

/* 结论：
    如果文件模块存在后缀，node会启动对应的语法解析器将模块进行解析
    如果文件模块不存在后缀，node默认启动js语法解析器将模块进行解析 */